Recently, there has been a growing demand for memory storage devices using NAND Flash memory due to their attractive features such as low power consumption, high data throughput, and small size. The original NAND flash architecture was referred to as single level cell (SLC) since it would only store one bit per in each memory cell (a floating gate transistor). More recent devices can store multiple bits per cell and are referred to as multi-level cell (MLC) flash.
In a solid state drive (SSD), a common requirement is that the drive maintains constant performance throughout its life. Some measures of performance are the operating power, the read throughput, and the average latency. In practice, reliability of the information stored in the flash decreases due to several factors such as cell-to-cell interference, charge leakage, over programming and read/write disturbance. These effects will become more severe with the age of the flash and the number of stored bits per cell. To resolve these issues, error correction codes (ECC) have been used to ensure data integrity and reliable data storage throughout the life of flash memory cells. By applying ECC, additional error correction bits are sent along the original data bits to protect the user data from errors caused by the weak or failing flash memory cells. Unfortunately, the addition of the error correction bits can reduce usable capacity. The fixed structure of the error correction codes can unnecessarily burden the storage capacity when no correction is necessary but can be insufficient to correct the user data as the flash memory cells wear.
Thus, a need still remains for a non-volatile memory system with error correction that can provide enhanced performance and longevity of a non-volatile storage system. In view of the growing market in the personal computer and peripheral areas, it is increasingly critical that answers be found to these problems. In view of the ever-increasing commercial competitive pressures, along with growing consumer expectations and the diminishing opportunities for meaningful product differentiation in the marketplace, it is critical that answers be found for these problems. Additionally, the need to reduce costs, improve efficiencies and performance, and meet competitive pressures adds an even greater urgency to the critical necessity for finding answers to these problems.
Solutions to these problems have been long sought but prior developments have not taught or suggested any solutions and, thus, solutions to these problems have long eluded those skilled in the art.